// package main

// import "fmt"

// type A struct {
// 	bb int
// }

// func (a A) name() {
// 	fmt.Println(a)
// }

// type iInter interface {
// 	name()
// }

// func testInterface() {
// 	var obj A
// 	var a iInter = obj
// 	if _, ok := a.(A); ok {
// 		fmt.Println("yes")
// 	}
// }

// func testType() {
// 	var obj interface{} = "bb"
// 	switch t := obj.(type) {
// 	case int:
// 		fmt.Println("int", t)
// 	case string:
// 		fmt.Println("string", t)
// 	}
// }

// func main() {
// 	fmt.Println("hello world")
// 	testInterface()
// 	testType()
// }
package main

import (
	"io"
	"log"
	"net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
	io.WriteString(w, "hello world!")
}

func main() {
	http.HandleFunc("/hello", helloHandler)
	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		log.Fatal("ListenAndServe", err.Error())
	}
}
